package com.shujia.scala

object Demo20Set {
  def main(args: Array[String]): Unit = {
    /**
     * set集合，唯一无序集合
     *
     */
    //Set默认是一个不可变集合
    val set: Set[Int] = Set(1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 1, 2)

    println(set.mkString(","))
    println(set.max)
    println(set.min)
    println(set.sum)
    println(set.size)
    println(set.head)
    println(set.last)

    /**
     * list中常用的方法再set中基本都有，除了和顺序相关的方法没有，比如sort
     *
     */
    set.foreach(println)
    println(set.map((i: Int) => i * 100))
    println(set.filter((i: Int) => i % 2 == 0))


    val set1: Set[Int] = Set(1, 2, 3, 4, 5, 6)
    val set2: Set[Int] = Set(4, 5, 6, 7, 8, 9)

    /**
     * 集合可以做交集，并集，差集计算
     */
    println(set1 & set2) //交集
    println(set1 | set2) //并集
    println(set1 &~ set2) //差集


  }

}
